One of the most significant factors in the ability of modern day computers to solve a seemingly limitless variety of problems is the generality of the device. It can be conceived as being comprised of a limited number of logic elements which can be selectively arranged in an almost infinite variety of combinations to act on the relevant data under the control of a program which can be varied to determine which particular problem the computer is to solve. The same sort of generality is desirable, even on the level of a group of or single logic circuit. Of course, on this level, some other method of control must be provided as it would be senseless to provide a program with its attendant storage, decoding and other requirements for each of the plurality of logic circuits.
There is a class of logic circuits, more particularly bubble domain logic circuits in which the advantages to be derived from the factor of generality have been appreciated and implemented. In my patent application Ser. No. 488,876, filed July 15, 1974 now abandoned and assigned to the assignee of this application, I disclose a bubble logic array which can be personalized under control of other logic apparatus in which one embodiment employs a control bubble stream to personalize the bubble logic. array.
A majority of the bubble devices which are disclosed in the prior art employ bubble domains as information carriers. A stream of bubbles (and voids) can be uniformly propagated. In a typical binary system, the presence of a bubble may be taken to represent a "1" while a void may be taken to represent a "0," (or vice versa). A stream of bubbles can therefore quite easily be conceived as a serial data stream. Furthermore, the mutual interaction of bubbles can be employed to advantage in synthesizing logical operations.
In addition to my patent application,, referred to above, a number of prior art patents disclose controlling a bubble domain stream by one or more resident bubbles. In this regard see U.S. Pat. Nos. 3,543,255, 3,638,208, 3,753,253 and 3,760,386.
Each of these patents, as well as my copending application, require a separate bubble domain propagation arrangement to provide the resident control bubble necessary for operation of these respective disclosures. In some applications, the separate bubble propagation and synthesizing apparatus provided may be duplicative of the propagating apparatus already present. Furthermore, this apparatus clearly requires the expenditure of power and may well introduce delays into the overall operation of the apparatus. The present invention obviates these drawbacks by providing a bubble propagation arrangement through which a plurality of data entities travel. The particular path of each data entity is determined by a key which travels along with the data entity. The key performs the same functions as does the control bubble or resident bubble in the aforementioned disclosures. However, by allowing the key to travel with the data entity no further bubble propagation and synthesizing apparatus is required. Furthermore, each data entity, since it carries its own key, may travel along a path which is different from the path on which a preceeding or subsequent data entity travels. Although a data entity may in fact represent a data word it may also be either shorter or longer than the typical data word length and thus the generic term data entity is employed.
By locating different logic circuits in different portions of a bubble domain propagation path the key, in controlling the path of a data entity likewise controls the logic operations which are performed thereon. In this fashion a self-programmed bubble domain logic apparatus is provided.
It is therefor a primary object of the present invention to provide a self-programmed bubble domain logic apparatus. It is another object of the present invention to provide a bubble domain logic apparatus in which a key associated with each data entity determines the logic operations which are to be performed on the associated data entity.
It is another object of the present invention to provide a bubble domain lock means which is capable of directing a stream of buble domains to take one of two possible propagation paths. It is another object of the present invention to provide such a bubble domain lock means which directs a stream of bubble domains to take a particular propagation path in dependence upon the relationship between a key, in the form of coded bubble combinations (such as bubbles-voids, or other bubble coding schemes) in the bubble domain stream, and an array of switches comprising said lock means.